查看原文
其他

文字版|什么是 zk-SNARK?

观看此视频,用简单的术语解释了什么是 zk-SNARK。


传统区块链,例如 Bitcoin 或 Dogecoin,由于其规模不断扩大,验证整个链面临着漫长的等待问题。然而通过 Mina,用户将能够通过使用递归零知识证明 zk-SNARK 从他们的一般设备上实现完全验证网络和交易。



什么是零知识 (ZK)?


zk-SNARK 与游戏“沃尔多在哪里”非常类似 —— 读者必须在图中找到沃尔多,一个混杂在众多人中穿着条纹衣服的角色。

什么是 zk-SNARK?此处我们通过游戏“沃尔多在哪里”的例子来进行描述,证明我们知道沃尔多在哪里,同时又不向他人泄漏他的具体位置。这个例子展示了我们如何通过改变证明方式来在不向验证者泄露信息的情况下证明沃尔多的下落。


通常来说,一旦你(证明者)在图中找到沃尔多,你就会直接将他指出来,证明你知道他在哪里。你的朋友(验证者)可以通过查看你指向的位置来验证你的证明是否有效。但是,这种证明还会因为你向你的朋友(验证者)展示了他在页面上的位置,而泄露了沃尔多的信息。


但是,如果你想说服你的朋友,你确切地知道沃尔多的所在,却又不想泄漏他的具体位置呢?换句话说,你想通过不在图中直接指向他的方法来证明你知道沃尔多的所在。


这种情况下,你需要改变构建证明的方式:
  • 首先,你需要一张很大的纸 —— 比“沃尔多在哪里”的系列丛书还要更大得多。

  • 接下来,你需要将纸放在书的上面,将书随机移动到这张纸背面的任意位置。

  • 然后,由于你知道书的位置,以及沃尔多的位置,你可以在纸上裁出一个小洞 —— 露出沃尔多,但不暴露沃尔多周围的任何背景信息。这就是你的证明。

  • 最后,你的朋友,即验证者,会看到且只会看到一张带洞的纸装置,洞口露出了沃尔多,你的证明可以说服他。但他无法获取沃尔多周围的环境,因为纸遮住了沃尔多旁边的所有背景信息。


这个证明方式不会泄露任何有关沃尔多位置的信息,因为看到这个证明的验证者并不会比其他没有看到的人更容易找到沃尔多。它只表明我们知道沃尔多在哪里,但没有透露沃尔多的位置。换句话说,我们对给定语句信息的上下文所知为零(zero knowledge),但我们不必透露其他任何信息。


我们称之为零知识证明,因为它不会向任何观察它的人泄露任何信息。



什么是简洁非交互式知识论证(SNARK)?


S- Succinct(简洁)意味着即使被证明的概念很复杂,其证明也很小,且易于验证!


N- Non-interactive(非交互式)意味着我们不需要证明者和验证者之间的来回通信。以“沃尔多在哪里”为例,证明者可以交出证明、说明用纸装置,而验证者可以在不进一步的提出任何问题的情况下判断证明是否有效。


AR- Argument(论证)是当我们谈及这些证明(proof)的形式体系,由于有一些复杂的密码学和非确定性并不完全符合传统意义上的“proof”(不过我们还是暂时可以将两者概括到一起)。


K- Knowledge(知识)是指证明者本身在事实上确实拥有证据。他们不仅仅是证明沃尔多存在,而且作为证明者,他们知道沃尔多在页面上的具体位置。


所有 zk-SNARK 都具有这些属性;它们不会泄漏信息,即使被证明的概念很复杂,它们也很小且易于验证,它们不需要来回通信,并且它们是知识证明 —— 证明者必须实际知道所声称的事物,而不仅仅停留于是它是真实的。


然而区块链不会玩“沃尔多在哪里”的游戏,需要做的是证明整个区块链是有效的。



为什么区块链需要有效性?


区块链由许多独立的人而不是中央实体运行。因此,许多人需要在信任区块链之前验证它是否有效。在其他链中,人们通过一个一个地重放每个区块来验证区块链的有效性。而 Mina 通过证明存在构成有效区块链的区块序列来实现这一点。



Mina 如何实现区块链有效性?


Mina 无需在每创建一个新块时重复验证完整的区块序列,而是通过稍微调整证明语句,节省资源和时间。


对于任意一个区块序列,以及在这个区块系列再添加一个额外的区块,Mina 都可以提供有效证明。也就是说,每当有一个新的区块被创建并在网络里广播的时候,Mina 都能扩建原来的有效证明,来支持这个新建的区块。


它就像一个可折叠的俄罗斯套娃,以初始的证明为核心,然后一层一层地添加了额外的证明。每个新层都增加了一个新的有效层 —— 你可以把它想象成一幅画中画。

Mina 的自我参照概念证明就像画中画。这就是让 Mina 保持固定大小的原因。


某些 zk-SNARK,例如 Mina 中使用的 Pickles,支持递归的概念,证明可以引用自身,并且这样做不会增加证明的大小,无论我们引用初始证明多少次。这种递归,画中画,是让 Mina 保持固定轻量的原因。



Mina 的方法:简化


当然,我们的方法比单纯的画中画要更复杂一些。zk-SNARK 背后的数学非常复杂,但是 Mina 将 SNARK 的复杂细节隐藏在一种很好的编程语言,Snarky 之下。



Mina 的 zk-SNARK 开启无限可能


zk-SNARK 为区块链用例开辟了新的可能性,例如对信用评分、家庭住址、医疗信息等敏感数据的应用。


如果你想要深入了解 zk-SNARK,请阅读这份 Crypto 最强证明的完整,并订阅我们的。



往期回顾

社区资助——表彰社区贡献

Kimchi:Mina 最新版本的证明系统

2022 年 2 月|Mina 生态开发进展更新




关于 Mina Protocol


About Mina Protocol



Mina 是全球最轻量级区块链,由参与者参与治理。


Mina采用先进的密码学和递归 zk-SNARK 取代大量密集型计算,设计了一个约为 22kb 的完整区块链,相当于几条推文的大小。这是第一个实现了零知识智能合约 (Snapp) 的高效实施性和简易可编程性的一层网络。


凭借其独特的隐私功能以及与任何网站链接的能力,Mina 正在现实世界和加密货币之间建立一个私密网关,构建一个我们所有人都应享有安全民主的未来。Mina 由总部位于美国的非营利组织 Mina 基金会管理。



全球最轻量区块链 人人皆可参与

公众号|Mina Protocol Official

微 博|Mina_Protocol









您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存